home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / stdlib / RCS / unsetenv.c,v < prev   
Encoding:
Text File  |  1989-03-22  |  4.1 KB  |  222 lines

  1. head     1.5;
  2. branch   ;
  3. access   ;
  4. symbols  ;
  5. locks    ; strict;
  6. comment  @ * @;
  7.  
  8.  
  9. 1.5
  10. date     89.03.22.00.47.37;  author rab;  state Exp;
  11. branches ;
  12. next     1.4;
  13.  
  14. 1.4
  15. date     88.12.31.12.29.06;  author ouster;  state Exp;
  16. branches ;
  17. next     1.3;
  18.  
  19. 1.3
  20. date     88.12.31.10.35.37;  author ouster;  state Exp;
  21. branches ;
  22. next     1.2;
  23.  
  24. 1.2
  25. date     88.07.25.14.54.11;  author ouster;  state Exp;
  26. branches ;
  27. next     1.1;
  28.  
  29. 1.1
  30. date     88.06.19.14.32.10;  author ouster;  state Exp;
  31. branches ;
  32. next     ;
  33.  
  34.  
  35. desc
  36. @@
  37.  
  38.  
  39. 1.5
  40. log
  41. @*** empty log message ***
  42. @
  43. text
  44. @/* 
  45.  * unsetenv.c --
  46.  *
  47.  *    Procedure to simulate cshell unsetenv call.
  48.  *
  49.  * Copyright (C) 1986 Regents of the University of California
  50.  * Permission to use, copy, modify, and distribute this
  51.  * software and its documentation for any purpose and without
  52.  * fee is hereby granted, provided that the above copyright
  53.  * notice appear in all copies.  The University of California
  54.  * makes no representations about the suitability of this
  55.  * software for any purpose.  It is provided "as is" without
  56.  * express or implied warranty.
  57.  */
  58.  
  59. #ifndef lint
  60. static char rcsid[] = "$Header: /sprite/src/lib/c/stdlib/RCS/unsetenv.c,v 1.4 88/12/31 12:29:06 ouster Exp Locker: rab $ SPRITE (Berkeley)";
  61. #endif /* not lint */
  62.  
  63. #include <sprite.h>
  64. #include <stdlib.h>
  65.  
  66. extern char **environ;
  67. extern char *malloc();
  68.  
  69.  
  70. /*
  71.  *----------------------------------------------------------------------
  72.  *
  73.  * unsetenv --
  74.  *
  75.  *    Unsets the given variable.  Note: taken from MH, temporary, doesn't
  76.  *      free space.
  77.  *
  78.  * Results:
  79.  *    None.
  80.  *
  81.  * Side effects:
  82.  *    "Name" will no longer exist as an environment variable.
  83.  *
  84.  *----------------------------------------------------------------------
  85.  */
  86.  
  87. void
  88. unsetenv(name)
  89.     char    *name;    /* Name of variable. */
  90. {
  91.     register char **envPtr;
  92.     register char **newEnvPtr;
  93.     register char *charPtr;
  94.     register char *namePtr;
  95.     register Boolean found = FALSE;
  96.  
  97.     for (envPtr = environ; *envPtr != NULL; envPtr++) {
  98.     for (charPtr = *envPtr, namePtr = name;
  99.          *charPtr == *namePtr; namePtr++) {
  100.          charPtr++;
  101.          if (*charPtr == '=') {
  102.          found = TRUE;
  103.          break;
  104.          }
  105.      }
  106.     if (found) {
  107.         break;
  108.     }
  109.     }
  110.     if (!found) {
  111.     return;
  112.     }
  113.     for (newEnvPtr = envPtr + 1; *newEnvPtr; newEnvPtr++) {
  114.     }
  115.     newEnvPtr--;
  116.     *envPtr = *newEnvPtr;
  117.     *newEnvPtr = NULL;
  118. }
  119. @
  120.  
  121.  
  122. 1.4
  123. log
  124. @Eliminate include of compatInt.h:  not needed.
  125. @
  126. text
  127. @d17 2
  128. a18 2
  129. static char rcsid[] = "$Header: /sprite/src/lib/c/stdlib/RCS/unsetenv.c,v 1.3 88/12/31 10:35:37 ouster Exp $ SPRITE (Berkeley)";
  130. #endif not lint
  131. d20 2
  132. a21 1
  133. #include "sprite.h"
  134. @
  135.  
  136.  
  137. 1.3
  138. log
  139. @Remove "transition" code to look in kernel environment area.
  140. @
  141. text
  142. @d17 1
  143. a17 1
  144. static char rcsid[] = "$Header: /sprite/src/lib/c/stdlib/RCS/unsetenv.c,v 1.2 88/07/25 14:54:11 ouster Exp Locker: ouster $ SPRITE (Berkeley)";
  145. a20 2
  146. #include "proc.h"
  147. #include "compatInt.h"
  148. @
  149.  
  150.  
  151. 1.2
  152. log
  153. @Lint.
  154. @
  155. text
  156. @d7 7
  157. a13 1
  158.  * All rights reserved.
  159. d17 1
  160. a17 1
  161. static char rcsid[] = "$Header: unsetenv.c,v 1.1 88/06/19 14:32:10 ouster Exp $ SPRITE (Berkeley)";
  162. d34 1
  163. a34 3
  164.  *      free space.  During transition period, if we have an empty environment
  165.  *    (or a nonexistent one -- which should no longer be the case), call
  166.  *    the kernel routines.
  167. d40 1
  168. a40 1
  169.  *    None.
  170. d49 5
  171. a53 2
  172.     if (environ == (char **) NULL || (*environ == (char *) NULL)) {
  173.     Proc_EnvironVar    envVar;
  174. d55 7
  175. a61 17
  176.     envVar.name = name;
  177.     Proc_OLDUnsetEnviron(envVar);
  178.     } else {
  179.     register char **envPtr;
  180.     register char **newEnvPtr;
  181.     register char *charPtr;
  182.     register char *namePtr;
  183.     register Boolean found = FALSE;
  184.  
  185.     for (envPtr = environ; *envPtr != NULL; envPtr++) {
  186.         for (charPtr = *envPtr, namePtr = name;
  187.          *charPtr == *namePtr; namePtr++) {
  188.          charPtr++;
  189.          if (*charPtr == '=') {
  190.              found = TRUE;
  191.              break;
  192.          }
  193. d63 3
  194. a65 3
  195.         if (found) {
  196.         break;
  197.         }
  198. a66 8
  199.     if (!found) {
  200.         return;
  201.     }
  202.     for (newEnvPtr = envPtr + 1; *newEnvPtr; newEnvPtr++) {
  203.     }
  204.     newEnvPtr--;
  205.         *envPtr = *newEnvPtr;
  206.     *newEnvPtr = NULL;
  207. d68 8
  208. @
  209.  
  210.  
  211. 1.1
  212. log
  213. @Initial revision
  214. @
  215. text
  216. @d11 1
  217. a11 1
  218. static char rcsid[] = "$Header: unsetenv.c,v 1.3 88/02/12 11:14:09 douglis Exp $ SPRITE (Berkeley)";
  219. a50 1
  220.     register int    i;
  221. @
  222.